]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
dateMenu: Don't limit weather forecasts to the same day
authorFlorian Müllner <fmuellner@gnome.org>
Wed, 20 Nov 2019 22:23:50 +0000 (23:23 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Sat, 23 Nov 2019 00:13:05 +0000 (01:13 +0100)
As we get closer to midnight, we show fewer forecasts than we could
fit, or none at all. It makes more sense to continue the forecasts
into the wee hours in that case, so only exclude past forecasts,
but not ones from following days.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1927

js/ui/dateMenu.js

index 1e630897bcc93968d05022f8f5ee23ce4ee9f4db..ec75653d87bf27031bd2b63f20a6d9d4dba810fa 100644 (file)
@@ -312,17 +312,18 @@ class WeatherSection extends St.Button {
         let info = this._weatherClient.info;
         let forecasts = info.get_forecast_list();
 
+        let now = GLib.DateTime.new_now_local();
         let current = info;
         let infos = [info];
         for (let i = 0; i < forecasts.length; i++) {
             let [ok_, timestamp] = forecasts[i].get_value_update();
-            let datetime = new Date(timestamp * 1000);
-            if (!_isToday(datetime))
-                continue; // Ignore forecasts from other days
+            const datetime = GLib.DateTime.new_from_unix_local(timestamp);
+            if (now.difference(datetime) > 0)
+                continue; // Ignore earlier forecasts
 
             [ok_, timestamp] = current.get_value_update();
-            let currenttime = new Date(timestamp * 1000);
-            if (currenttime.getHours() == datetime.getHours())
+            const currenttime = GLib.DateTime.new_from_unix_local(timestamp);
+            if (datetime.difference(currenttime) < GLib.TIME_SPAN_HOUR)
                 continue; // Enforce a minimum interval of 1h
 
             current = forecasts[i];